#ifndef __win32GraphicsSubSystem__h__included__
#define __win32GraphicsSubSystem__h__included__

#include "neiderra/core/Core.h"
#include "neiderra/gui/iGraphicsSubSystem.h"
#include "neiderra/gui/EventListener.h"

#include <vector>
#include <string>

using std::string;
using std::vector;

namespace neiderra { 

	using core::Core;

	namespace gui { 
		class GUIWindow; 

		//! Win32 graphics subsystem
		class win32GraphicsSubsystem: public iGraphicsSubsystem {
		public:
			win32GraphicsSubsystem(Core* core);
			virtual ~win32GraphicsSubsystem();

			//! Update subsystem
			virtual void update(double deltaT);

			//! Create simple window
			virtual GUIWindow* createSystemWindow(const std::string& title);

			//! Create advanced window
			virtual GUIWindow* createSystemWindow(
				const std::string& title,
				int x, int y, int width, int height,
				GUIWindow* parent
			);

			//virtual void makeCurrentWindow(GUIWindow*);
			virtual GUIWindow* createDefaultWindow(const std::string& title);
		private:
			vector<GUIWindow*> _windows;
		};
	}

}

#endif
